cmake_minimum_required (VERSION 3.12)

option(MIMIC_BUILD_DOC "enable build of documentation" OFF)

############### Documentation ##############
#  Add documentation generation to cMake   #
############################################

file(GLOB MIMIC_PUBLIC_HEADER_FILES
    "${CMAKE_SOURCE_DIR}/mimic/inc/*.hpp"
    "${CMAKE_SOURCE_DIR}/mimic/inc/features/*.hpp"
)

if (MIMIC_BUILD_DOC)
  find_package(Doxygen)
  if (DOXYGEN_FOUND)
    set(DOXYGEN_OUTPUT_DIRECTORY doxygen)
    set(DOXYGEN_COLLABORATION_GRAPH YES)
    set(DOXYGEN_EXTRACT_ALL YES)
    set(DOXYGEN_SHOW_NAMESPACES NO)
    set(DOXYGEN_CLASS_DIAGRAMS YES)
    set(DOXYGEN_HIDE_UNDOC_RELATIONS NO)
    set(DOXYGEN_HAVE_DOT YES)
    set(DOXYGEN_CLASS_GRAPH YES)
    set(DOXYGEN_CALL_GRAPH YES)
    set(DOXYGEN_CALLER_GRAPH YES)
    set(DOXYGEN_COLLABORATION_GRAPH YES)
    set(DOXYGEN_BUILTIN_STL_SUPPORT YES)
    set(DOXYGEN_EXTRACT_PRIVATE YES)
    set(DOXYGEN_EXTRACT_PACKAGE YES)
    set(DOXYGEN_EXTRACT_STATIC YES)
    set(DOXYGEN_EXTRACT_LOCALMETHODS YES)
    set(DOXYGEN_UML_LOOK YES)
    set(DOXYGEN_UML_LIMIT_NUM_FIELDS 50)
    set(DOXYGEN_TEMPLATE_RELATIONS YES)
    set(DOXYGEN_DOT_GRAPH_MAX_NODES 100)
    set(DOXYGEN_MAX_DOT_GRAPH_DEPTH 0)
    set(DOXYGEN_DOT_TRANSPARENT YES)
    set(DOXYGEN_USE_MDFILE_AS_MAINPAGE  "${CMAKE_CURRENT_SOURCE_DIR}/MainPage.md")

    doxygen_add_docs( MimicDoc ${MIMIC_PUBLIC_HEADER_FILES} "${CMAKE_CURRENT_SOURCE_DIR}/MainPage.md" )
    #add_dependencies(${GENSDK_NAME} GenSDKdoc)

  else()
    message( "Doxygen need to be installed to generate the doxygen documentation" )
  endif() # DOXYGEN_FOUND

endif() # MIMIC_BUILD_DOC
